-- 存储在变量
function f1(x)
    print(x)
end

f2 = f1

f2(10) --> 10

-- 作为参数
function double(x)
    return x * 2
end

function print_x(x, fun)
    print(fun(x))
end

print_x(10, double) --> 20

-- 作为返回值
function new_fun(p)
    function cal(x)
        return x * 2 + p
    end
    return cal
end

cal = new_fun(3)
print(cal(2)) --> 7
